#include "dialogutil.h"

DialogUtil::DialogUtil()
{

}

QString DialogUtil::getFilePath(QPlainTextEdit* textEdit)
{
   QString selectFilePath="";
    // 打开文件

    QFileDialog fileDialog ;
    fileDialog.setDefaultSuffix("./");
    QString dialogFilePath = fileDialog.getOpenFileName(nullptr, "Open File", "", "All Files (*.*) ;; Text Files (*.txt)");

    // 如果打开位置不为空
    if(dialogFilePath.isEmpty() == false)
    {
        selectFilePath = dialogFilePath;
    }
    if (!selectFilePath.isEmpty()) {
        QFile file(selectFilePath);
        if (file.open(QIODevice::ReadOnly)) {
            QTextStream in(&file);
            // 必须要设置解码器
            in.setCodec(codec);
            QString res = in.readAll();

            // 读取文件内容
            textEdit->setPlainText(res);
            file.close();
        }
    }
    return selectFilePath;
}


QString DialogUtil::getFilePath(std::function<void()> func)
{
    QString selectFilePath="";
    // 打开文件
    QFileDialog fileDialog ;
    fileDialog.setDefaultSuffix("./");
    QString dialogFilePath = fileDialog.getOpenFileName(nullptr, "Open File", "", "All Files (*.*) ;; Text Files (*.txt)");

    // 如果打开位置不为空
    if(dialogFilePath.isEmpty() == false)
    {
        selectFilePath = dialogFilePath;
    }
    if (!selectFilePath.isEmpty()) {
        //lambuda函数执行位置，比如debug信息等, 读取文件数据等等
        if(func!=nullptr)
        {
            func();
        }
    }
    return selectFilePath;
}
